草庐IT

Java Swingworker 和多线程

全部标签

java - 如何在java中重新启动线程?

这个问题在这里已经有了答案:Howtostart/stop/restartathreadinJava?(9个回答)关闭6年前。我创建了一个在源文件夹中搜索文件的程序。如果找到任何文件,它会处理该文件并将其移动到目标文件夹,然后在源文件夹中查找新文件。它必须继续检查文件的源文件夹。我已经使用线程在源文件夹中查找文件。我面临的问题是,只要在文件处理过程中抛出任何异常,线程就会停止。即使抛出异常,我也希望线程继续运行。它必须将导致错误的文件移动到其他文件夹,并在源文件夹中查找新文件。如何让线程继续运行?例如:publicvoidrun(){try{searchfile();}catch(Ex

java - 如何检查线程是否在同步块(synchronized block)或方法内?

我的Java应用程序使用两个线程。从历史上看,有同步方法和专用锁对象在使用中。我需要知道当前线程是否有锁,是通过方法还是通过对象。我该怎么做? 最佳答案 当进入同步方法时,VM会在当前对象上设置一个锁。因此下面的代码具有相同的效果:synchronizedvoidsyncMethod(){//dosomething}voidsyncManually(){synchronized(this){//dosomething}}这意味着同步方法与synchronized(lock){//dosomething}代码中的任何位置。您可以使用T

java - 守护线程和低优先级线程的区别

最近有人问我一个问题:We'vegotthesetPriority()methodtosetathreadforlowpriority.Thenwhydoweneedadaemonthread.What'sthedifferencebetweenthem?将线程标记为守护进程会改变它的调度吗? 最佳答案 We'vegotthesetPriority()methodtosetathreadforlowpriority.Thenwhydoweneedadaemonthread.What'sthedifferencebetweenthem

java - 为什么 EJB 是线程安全的而 servlet 不是?

根据我的理解,servlet容器创建有限的servlet实例和每个servlet实例的多个线程,并重用这些线程和实例。因为一个线程有多个实例,所以它们不是“线程安全的”(尽管我知道用线程安全对它们进行编码并不困难)。另一方面,EJB容器不创建EJB线程,而是仅重用EJB对象(使用池)。由于一个EJB实例没有多线程,所以不存在线程安全问题。我的问题:为什么会有不同的行为?让EJB作为Servlet(线程不安全)工作不是一个好主意吗?我确定我遗漏了一些东西并且想了解那个遗漏的部分。 最佳答案 对您的问题的最简短回答当然是让EJB像Ser

java - 线程 "main"java.util.NoSuchElementException 中的异常

每当我运行它时,chooseCave()函数与in.nextInt()一起正常工作。当我选择洞穴时,消息以2秒的间隔弹出,然后一旦它通过该部分,它就会给我错误:Exceptioninthread"main"java.util.NoSuchElementException:Nolinefoundatjava.util.Scanner.nextLine(UnknownSource)atDragon.main(Dragon.java:81)我已经尝试过hasNextLine()和hasNextInt(),当我在mainwhilehasNextLine()时方法,我得到了更多的错误。当我在ch

java - 使用 minimax 的 tic-tac-toe 可以使用多少个线程?

让我们以5x5井字游戏为例。假设轮到我的AI了。然后,我走25步(基本上每个单元格,当然,如果它是合法的移动),为每个Action创建一个线程(总共(最多)25个线程),对每一步都调用一个minimax函数,然后当所有结果都来自每个线程时,比较得分并选择得分最高的着法。这是我的问题:使用25个线程是否高效?使用25个线程意味着什么?它是否快了25倍(很可能不是)?它取决于什么?当然是在计算机上,但是我如何根据计算机的资源知道可以使用多少线程呢?如果我使用太多线程会怎样(我猜没什么……)?我的想法好吗?谢谢。 最佳答案 对于典型的计算

java - 线程 "main"java.lang.NoSuchFieldError : TRACE 中的异常

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭8年前。Improvethisquestion我正在开发一个访问数据库的项目,但遇到了一些问题。我尝试使用hibernate3.2和4.52,但它不起作用。log4j:WARNNoappenderscouldbefoundforlogger(org.jboss.logging).log4j:WARN

java - 将属性添加到当前 Java 线程

如何在Java中将'attributes'设置为当前Thread,我想设置键值并在另一个地方获取值,但在同一个地方线。喜欢这个http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/MDC.html 最佳答案 我认为您不能在Java中向任何给定线程添加属性,但您可以使用ThreadLocal实例来存储每个线程的任何特殊信息。http://download.oracle.com/javase/6/docs/api/java/lang/ThreadLocal.html

java - 如何在调用 Join() 之前停止线程返回

这纯粹是一个理论问题,因为我不确定导致此问题的条件是否普遍。例如,假设您有一个线程,您使用它的启动方法启动:Threadc=newThread();c.start();紧接着,您调用线程上的Join()方法,告诉您所在的方法等待线程执行完毕后再继续。c.join();线程是否有可能在调用join方法之前执行并完成,因此让该方法不知道它必须等待c完成才能继续?我想您可以在调用start()方法之前尝试调用join()方法,但每当我在测试用例中尝试这样做时,都会出现错误。有人知道这个问题的可能修复方法,或者JVM是否处理它?正如我所说,我无法触发这种情况,但理论上是可能的......

【linux线程(一)】什么是线程?怎样操作线程?

💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:Linux从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学更多操作系统知识 🔝🔝Linux线程1.前言2.什么是线程?3.线程和进程的区别和联系4.Linux下如何操作线程?5.pthread线程库讲解6.线程和前面知识的汇总7.总结以及拓展1.前言可能大家对多线程这三个字早有耳闻,那么到底什么是线程?为什么要有它?它和进程之间有什么联系?本章重点:本篇文章着重讲解线程的基本概率,以及进程和线程的对比,最后会讲解在Linux下如何创建,控制,终止,等待线程2.什么是线程?程序中的一个执行路线就叫做线程一个进程至少要有一个执行线